next-key lock
InnoDB
のlockの仕組み
MySQL :: MySQL 8.0 Reference Manual :: 15.7.4 Phantom Rows
index-row lock + gap lock
index-row lock
検出したindexにlockをかける
gap lock
DBにid 92,102があったとする
code:sql
SELECT * FROM child WHERE id > 100 FOR UPDATE;
があったとき、101はロックされる(他のトランザクションがINSERTできない)
良く分かるMySQL Innodbのギャップロック - Qiita